package it.dk.model;

import java.util.ArrayList;
import java.util.Observable;

/**
 * Classe concreta per la gestione degli alert per le collisioni di Hero
 */
public class AlertCollisionHero extends Observable {

	private ArrayList<Integer> objects;
	
	/**
	 * Costruttore della classe
	 * 
	 * @param size dimensione con cui instanziare object
	 */
	public AlertCollisionHero(int size){
		objects = new ArrayList<Integer>(5);
		for(int i=0;i <size;i++)
			objects.add(-1);
	}
	
	/**
	 * Ritorna il vettore delle collisioni di hero
	 * contenente gli oggetti con cui hero ha colliso
	 * altrimenti null
	 * 
	 * @return vettore delle collisioni
	 */
	public ArrayList<Integer> getCollision() {
		return objects;
	}
	
	/**
	 * Cambia lo stato della collisione e notifica il cambio
	 * di stato a tutti gli observer
	 * 
	 * @param object oggetto che ha attivato la collisione
	 */
	public void setCollision(ArrayList<Integer> objects){
		for(int i =0; i<objects.size();i++){
			if(objects.get(i)!=this.objects.get(i)){
				this.objects = new ArrayList<Integer>(objects);
				setChanged();
				break;
			}
		}
		notifyObservers();
	}
}
